home *** CD-ROM | disk | FTP | other *** search
/ Precision Software Appli…tions Silver Collection 1 / Precision Software Applications Silver Collection Volume One (PSM) (1993).iso / windows / games / tif2win.exe / MSBIT.DOC < prev    next >
Text File  |  1988-01-15  |  6KB  |  125 lines

  1. file: MSBIT.DOC
  2. by: W.J.Hinkle
  3. rev: 15 Jan 1988
  4.  
  5.     Lotus Manuscript Bitmapped File Formats
  6.     ---------------------------------------
  7.  
  8. This document details the format of the bitmapped graphics files used by
  9. the Lotus Manuscript technical word processing program.  These are the BIT
  10. and RLE files than are used to include raster-type images in MS documents.
  11. Note that vector-type images are best translated into PIC files (as used also
  12. by Lotus 1-2-3).  As shipped, MS V1.0 only provides translation for scanned
  13. images from Datacopy 720 and MicroTek 300 scanner files (IMG files).
  14. (Supposedly either normal or compressed IMG files can be translated, but I've
  15. been unable to get compressed MicroTek files to translate without "Divide
  16. Overflow".)  In order to get any other kind of bit-mapped graphics file, say
  17. a BASIC BLOAD screen image file, into a Manuscript document, it must be
  18. translated into a BIT or RLE file.
  19.  
  20. Perhaps needless to say, Lotus will not, at this writing, divulge the format
  21. of the BIT and RLE files.  Therefore the format was extracted by file snooping
  22. with DEBUG, and experimentation.  So this is not gospel!
  23.  
  24. As suggested above, there are two MS formats used for bit-mapped graphics,
  25. which are differentiated by their filename extentions: either BIT or RLE.
  26. Either of these two file formats can be used to hold the same image, but
  27. RLE files are smaller (as they are Run Length Encoded, hence compressed).
  28.  
  29. The formats of both the BIT and RLE files are organized as follows:
  30.  
  31. <header>,<scan line>,<scan line>...
  32.  
  33. The BIT header consists of 9 bytes of binary information as follows:
  34.  
  35. <hex 42, the ASCII letter 'B'>
  36. <16-bit word, horizontal resolution in pixels per inch>
  37. <16-bit word, vertical resolution in lines per inch>
  38. <16-bit word, number of horizontal lines in image>
  39. <16-bit word, number of bytes required per line (8 pixels per byte)>
  40.  
  41. Note that the RLE header format is exactly the same, except that it starts
  42. with <hex 52, the ASCII letter 'R'> instead.  All of the 16-bit words are
  43. stored Intel-wise: low byte, then high byte.  Note that, for a given image,
  44. final word is the same for either BIT and RLE files.
  45.  
  46. Scan lines immediately follow the header, starting from the top of the image
  47. and working down without interlace.  Scan lines consist entirely of pixel
  48. data encoded into a byte stream, the format of which differs between BIT and
  49. RLE files.  There is no additional header data or alignment spacing in the
  50. file.  Since the RLE scan line information can be expanded into BIT format,
  51. the BIT format is explained first.
  52.  
  53. Each BIT file scan line consists of a byte stream encoding pixels from left
  54. to right in the image.  Within each byte, the most significant bit (bit 7)
  55. is the leftmost in the scan line.  An "on" pixel is represented by a "1" and
  56. an "off" pixel by a "0" bit.  In other words, the scan line data is a natural
  57. binary representation of the scan line in the image.
  58.  
  59. In an RLE file, the same scan line information is encoded into (typically)
  60. fewer bytes.  Each sequence of up to 128 identical pixels is encoded into a
  61. single byte, where the sense of bit 7 gives the state of the pixel ("on"="1",
  62. "off="0") and the lower 7 bits give a run length 1-127, with 0 representing
  63. 128 pixels.  Generally this encoding yields a much smaller image file, unless
  64. there are numerous very short pixel runs.
  65.  
  66. Note that, in translating a screen image, you may want to reverse the sense
  67. of the pixels, as images that look OK on a screen will often look like they
  68. are color-reversed (negative) on the printed page!
  69.  
  70.     Basic BLOAD Files
  71.     -----------------
  72.  
  73. It is a very straightforward translation from Basic BLOAD screen graphic files
  74. to BIT files (or RLE files).  The simplest are those from a single-color
  75. CGA or EGA screen.  A BLOAD file is very similar to a BIT file in that there
  76. is a header and then unaligned scan line data.  The BLOAD header is consists
  77. of 7 bytes of binary information:
  78.  
  79. <hex FD>
  80. <16-bit word, giving the screen memory segment; e.g. B800, A000, etc.>
  81. <16-bit word, always 0000 for a screen image>
  82. <16-bit word, giving the total number of bytes encoding pixels in the image>
  83.  
  84. The scan lines follow without further header information or alignment, except
  85. for interlace.  The scan lines are represented just as in the BIT file: left
  86. to right, bit 7 leftmost, with the same pixel sense.  It is up to the
  87. translator to determine, perhaps from the header, what the aspect ratio and 
  88. interlace of the image are.
  89.  
  90. A CGA header (in hexadecimal) may be:
  91.  
  92. <FD>,<00>,<B8>,<00>,<00>,<80>,<3E>
  93.  
  94. meaning a BLOAD file from screen memory at B800:0000 with 16000 bytes.  Note
  95. that CGA graphic screens have a x2 interlace, which is reflected in the BLOAD
  96. file.  The entire screen buffer is 16384 bytes, with all of the 100 even scan
  97. lines first, a gap, and then all of the 100 odd scan lines.  Therefore a CGA
  98. BLOAD file consists of 16384+7 = 16391 bytes.  The even scan lines are listed
  99. after the header, and the odd scan lines with an additional 8192 byte offset.
  100. Each scan line consists of 640 pixels, or 80 bytes.  The translator must
  101. interlace the lines into the BIT file.
  102.  
  103. The EGA header (in hexadecimal) is:
  104.  
  105. <FD>,<00>,<A0>,<00>,<00>,<60>,<6D>
  106.  
  107. meaning a BLOAD file from screen memory at A000:0000 with 28000 bytes.  Note
  108. that EGA graphic screens of this sort have no interlace.  The entire EGA BLOAD
  109. file consists of 28000+7 = 28007 bytes.  The 350 scan lines are listed
  110. consecutively after the header, each consisting of 640 pixels, or 80 bytes.
  111.  
  112. Other BLOAD files may be created from other types of video system's screen
  113. buffers.  These will differ in segment address, number of bytes, number of
  114. lines and pixels per line, and interlace.  Good luck!
  115.  
  116. Note that the ShareWare program "Optiks" (OK.EXE), available on many bulletin
  117. boards, can translate many graphics files, such as PC-Paint, to Basic BLOAD
  118. files.  These can then be translated into BIT or RLE files.  The BIT2BAS.EXE
  119. program, for example, can translate CGA or EGA BLOAD (BAS) screen image files
  120. to BIT files.  Also available for Manuscript users is the ADI2PIC.EXE program,
  121. which translates AutoCad ADI plot files to Lotus PIC files, or acts as a
  122. loadable AutoCad plotter driver that creates PIC files directly.  These PIC
  123. files can also be used directly by Manuscript and generally are smaller and
  124. more precise than an equivalent raster, or bitmapped, image.
  125.